package ar.com.tallerdos.smartdinner.model;

import java.io.Serializable;

import com.google.gson.annotations.Expose;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;


@SuppressWarnings("serial")
@DatabaseTable(tableName = "pedidos")
public class Product implements Serializable {
	
	private enum Estados {
		   Pendiente, Comenzado, Terminado, Cancelado;
	}
		
	@Expose
	@DatabaseField(id = true)
	private Integer id;
	
	@Expose
	@DatabaseField
	private Integer product_id;
	
	@Expose
	@DatabaseField
	private String descripcion;
	
	@Expose
	@DatabaseField
	private Integer cantidad;
	
	@Expose
	@DatabaseField
	private Integer precio;
	
	@Expose
	@DatabaseField
	private Integer mesa_id;
	
	@Expose
	@DatabaseField
	private String fecha;
	
	@Expose
	@DatabaseField
	private String estado;
	
	@Expose
	@DatabaseField
	private char encargado;
	
	@Expose
	@DatabaseField
	private char cancelado;
	
	@Expose
	@DatabaseField
	private char facturado;
	
	@Expose
	@DatabaseField
	private Integer usuario_id;
	
	@Expose
	@DatabaseField
	private Integer usuario_id_autoriz;
	
	private int iconID;
	
	private Integer estadoID;
	
	
	public Product(String descripcion, String fecha, int iconID, String estado, int cantidad){
		super();
		this.descripcion = descripcion;
		this.fecha = fecha;
		this.iconID = iconID;
		this.estado = estado;
		this.cantidad = cantidad;
		
		switch(Estados.valueOf(estado)) {
	    case Comenzado:
	    	estadoID = 1;
	        break; 
	    case Terminado:
	    	estadoID = 2;
	    	break;
	    case Cancelado:
	    	estadoID = 3;
	    	break;
	    default:
	    	estadoID = 0;
		}
	}
	
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public void setIconID(int iconID) {
		this.iconID = iconID;
	}

	public void setEstado(String estado) {
		this.estado = estado;
		
		switch(Estados.valueOf(estado)) {
	    case Comenzado:
	    	estadoID = 1;
	        break; 
	    case Terminado:
	    	estadoID = 2;
	    	break;
	    case Cancelado:
	    	estadoID = 3;
	    	break;
	    default:
	    	estadoID = 0;
		}
	}
	
	public void setCantidad(int cantidad){
		this.cantidad = cantidad;
	}

	public String getDescripcion(){
		return descripcion;
	}
	
	public String getFecha(){
		return fecha;
	}
	
	public int getIconID(){
		return iconID;
	}
	
	public String getEstado(){
		return estado;
	}

	public Integer getEstadoID(){
		return estadoID;
	}
	
	public int getCantidad(){
		return cantidad;
	}

}

